package com.datastructure.test.maxsubarraysumcircular;

import java.util.ArrayList;

public class MaxSubarraySumCircular {

    public static void main(String[] args) {
        MaxSubarraySumCircular maxSubarraySumCircular = new MaxSubarraySumCircular();
        ArrayList<Integer> nums = new ArrayList<>();
        nums.add(6);
        nums.add(-3);
        nums.add(6);
        System.out.println(maxSubarraySumCircular.maxSubarraySumCircular(nums));
    }

    public int maxSubarraySumCircular (ArrayList<Integer> nums) {
        // write code here
        int[] dataArray = new int[nums.size()*2-1];
        for (int i = 0; i < dataArray.length; i++) {
            dataArray[i]= nums.get(i%nums.size());
        }
        int[] temp = new int[dataArray.length];
        temp[0]=dataArray[0];
        for (int i = 1; i < temp.length; i++) {
            temp[i]=Math.max(temp[i-1],temp[i-1]+dataArray[i]);
        }
        return temp[temp.length-1];
    }
}
